Skip to content

feat(ci): build otel images and run integration tests with them#1013

Merged
Molter73 merged 2 commits into
mainfrom
mauro/ci/build-test-otel
Jul 14, 2026
Merged

feat(ci): build otel images and run integration tests with them#1013
Molter73 merged 2 commits into
mainfrom
mauro/ci/build-test-otel

Conversation

@Molter73

@Molter73 Molter73 commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

Description

This enables building images with the opentelemetry output enabled, making it easier to run integration tests with it.

Since the grpc output already tests all kernels we support, these tests are only run on fedora-coreos.

Checklist

  • Patch has a change log entry OR does not need one.
  • Investigated and inspected CI test results
  • Updated documentation accordingly

Automated testing

  • Added unit tests
  • Added integration tests
  • Added regression tests

If any of these don't apply, please comment below.

Testing Performed

TODO(replace-me)
Use this space to explain how you tested your PR, or, if you didn't test it, why you did not do so. (Valid reasons include "CI is sufficient" or "No testable changes")
In addition to reviewing your code, reviewers must also review your testing instructions, and make sure they are sufficient.

For more details, ref the Confluence page about this section.

Summary by CodeRabbit

  • New Features
    • Integration tests now support configurable virtual machines and output formats, including OTLP for OpenTelemetry.
  • Improvements
    • CI container builds and downstream tests now use reusable workflows with consistent, parameterized image tags across amd64/arm64 and multi-arch manifests.
    • Test execution now passes the selected output format through to the test runner (defaulting to gRPC) and produces less collision-prone log artifact names.
    • OpenTelemetry-enabled test runs are wired to use OTLP output and corresponding image tags.

@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

CI image builds and test stages now use reusable workflows. Container tags flow into integration and performance tests, integration VMs and output formats are configurable, and OTEL builds reuse the shared image target with feature-specific build arguments.

Changes

CI workflow refactor

Layer / File(s) Summary
Reusable container image build and publication
.github/workflows/container-build.yml, Makefile
Container tags are computed centrally; amd64 and arm64 images are pushed to both registries, followed by multi-architecture manifests. OTEL builds reuse the image recipe with feature-specific Cargo arguments.
Reusable CI stage orchestration
.github/workflows/ci.yml, .github/workflows/konflux-tests.yml
CI invokes reusable container, integration, and performance workflows, passing image tags, VM lists, scheduling conditions, and OTEL parameters.
Parameterized integration test execution
.github/workflows/integration-tests.yml, ansible/run-tests.yml
Integration tests accept caller-provided VMs and output types, include job tags in artifact names, and pass the selected output mode to pytest.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
  participant CI
  participant ContainerBuild
  participant Registry
  participant IntegrationTests
  participant VM
  CI->>ContainerBuild: invoke reusable build workflow
  ContainerBuild->>Registry: push architecture images and manifests
  ContainerBuild-->>CI: return image tag
  CI->>IntegrationTests: pass tag, VM list, and output type
  IntegrationTests->>VM: run configured integration tests
Loading

Possibly related PRs

  • stackrox/fact#760: Changes the integration-test VM selection logic in the overlapping reusable workflow.

Suggested labels: coderabbit-review

Suggested reviewers: stringy

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The required sections are present, but Testing Performed is still a placeholder and the testing checklist lacks explanations for unchecked items. Replace the TODO with concrete testing steps or a reason tests were not run, and clarify which checklist items do not apply.
✅ Passed checks (4 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly matches the main change: building OTEL images and using them for integration tests.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch mauro/ci/build-test-otel

Comment @coderabbitai help to get the list of available commands.

@codecov-commenter

codecov-commenter commented Jul 7, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 32.95%. Comparing base (ecb23ad) to head (6ca905a).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1013   +/-   ##
=======================================
  Coverage   32.95%   32.95%           
=======================================
  Files          21       21           
  Lines        2971     2971           
  Branches     2971     2971           
=======================================
  Hits          979      979           
  Misses       1989     1989           
  Partials        3        3           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch from 85722a4 to e2a1695 Compare July 7, 2026 16:03
@Molter73 Molter73 force-pushed the mauro/ci/build-test-otel branch from b118a82 to faefb58 Compare July 7, 2026 16:04
@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch from e2a1695 to f964087 Compare July 8, 2026 15:20
@Molter73 Molter73 force-pushed the mauro/ci/build-test-otel branch from faefb58 to b8cd802 Compare July 8, 2026 15:22
@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch from f964087 to 5c66700 Compare July 9, 2026 10:56
@Molter73 Molter73 force-pushed the mauro/ci/build-test-otel branch from b8cd802 to f6461e3 Compare July 9, 2026 10:56
@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch from 5c66700 to 69acc30 Compare July 10, 2026 10:56
@Molter73 Molter73 force-pushed the mauro/ci/build-test-otel branch from f6461e3 to 2be7397 Compare July 10, 2026 10:56
@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch from 69acc30 to 046a472 Compare July 10, 2026 11:21
@Molter73 Molter73 force-pushed the mauro/ci/build-test-otel branch from 2be7397 to d36e05b Compare July 10, 2026 11:22
@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch 3 times, most recently from 735c159 to 16f5d71 Compare July 10, 2026 12:47
@Molter73 Molter73 force-pushed the mauro/ci/build-test-otel branch from d36e05b to 48a74a3 Compare July 10, 2026 12:47
@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch from 16f5d71 to 31f8ee3 Compare July 10, 2026 13:56
@Molter73 Molter73 force-pushed the mauro/ci/build-test-otel branch from 48a74a3 to a770ac5 Compare July 10, 2026 13:56
@Molter73 Molter73 force-pushed the mauro/tests/otel-support branch from 31f8ee3 to cbf9c70 Compare July 10, 2026 14:10
@Molter73 Molter73 force-pushed the mauro/ci/build-test-otel branch 2 times, most recently from 1600ccf to 458d238 Compare July 10, 2026 14:25
Base automatically changed from mauro/tests/otel-support to main July 13, 2026 09:14
This enables building images with the opentelemetry output enabled,
making it easier to run integration tests with it.

Since the grpc output already tests all kernels we support, these tests
are only run on fedora-coreos.
@Molter73 Molter73 force-pushed the mauro/ci/build-test-otel branch from 458d238 to c9b6fa2 Compare July 13, 2026 09:15
@Molter73 Molter73 marked this pull request as ready for review July 13, 2026 09:15
@Molter73 Molter73 requested a review from a team as a code owner July 13, 2026 09:15

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/container-build.yml:
- Around line 25-28: Update both actions/checkout@v4 steps in the workflow to
set persist-credentials to false alongside their existing checkout options,
including the step with submodules and fetch-depth and the second checkout step.
- Around line 30-36: Update the vars step to pass inputs.tag-suffix through the
step’s env block, then append the shell variable rather than embedding GitHub
expression syntax in the heredoc. Apply the same env-based pattern to every
podman manifest step, passing needs.vars.outputs.* through env and referencing
those shell variables in commands to prevent pre-shell injection.

In `@Makefile`:
- Around line 20-25: Update the image-otel target and its dependent image build
flow so the OTEL variant is tagged as $(FACT_IMAGE_NAME)-otel instead of reusing
$(FACT_IMAGE_NAME). Preserve the existing --features otel CARGO_ARGS behavior
and align the target with the $(FACT_IMAGE_NAME)-otel name expected by
tests/Makefile.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Enterprise

Run ID: 235999d3-f979-4f5a-913a-74c92f8f72b6

📥 Commits

Reviewing files that changed from the base of the PR and between ecb23ad and c9b6fa2.

📒 Files selected for processing (6)
  • .github/workflows/ci.yml
  • .github/workflows/container-build.yml
  • .github/workflows/integration-tests.yml
  • .github/workflows/konflux-tests.yml
  • Makefile
  • ansible/run-tests.yml

Comment thread .github/workflows/container-build.yml
Comment thread .github/workflows/container-build.yml
Comment thread Makefile
@Molter73 Molter73 merged commit 058b905 into main Jul 14, 2026
67 of 71 checks passed
@Molter73 Molter73 deleted the mauro/ci/build-test-otel branch July 14, 2026 08:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants